package com.example.order.config;

import feign.Retryer;
import org.apache.seata.spring.boot.autoconfigure.SeataAutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
@EnableAutoConfiguration(exclude = SeataAutoConfiguration.class) // 新增排除 Seata 自动配置
public class OrderConfig {

    /**
     * 负载均衡注解，此后本微服务发送的每个http请求都会使用负载均衡算法
     */
    @LoadBalanced
    @Bean
    //RestTemplate组件，用于发送远程调用（即http请求）
    RestTemplate restTemplate(){
        return new RestTemplate();
    }

    /**
     * 超时重试器
     * 底层的default方法就是重试器，默认就是重试五次
     */
    @Bean
    Retryer retryer(){
        return new Retryer.Default();
    }
}

